// آپلود تصویر پروفایل و ذخیره آن به عنوان متای کاربر
add_action('elementor_pro/forms/new_record', 'nias_elementor_profile_picture_upload', 10, 2);

function nias_elementor_profile_picture_upload($record, $ajax_handler) {
    $form_name = $record->get_form_settings('form_name');
    //
    //اسم فرم حتماً تصویر پروفایل باشد
    //
    if ('تصویر پروفایل' !== $form_name) {
        return;
    }

    $form_data = $record->get_formatted_data();
    //
    //
    //اسم فیلد حتماً تصویر پروفایل باشد
    //
    // بررسی وجود لینک تصویر پروفایل
    if (!empty($form_data['تصویر پروفایل'])) {
        $profile_picture_url = $form_data['تصویر پروفایل']; // دریافت URL تصویر پروفایل

        $current_user_id = get_current_user_id();

        // ذخیره URL تصویر به عنوان متای کاربر
        //
        // nias_profile_user آید فیلد حتماً این باشد
        //
        update_user_meta($current_user_id, 'nias_profile_user', $profile_picture_url);

        $ajax_handler->add_response_data('message', 'تصویر آپدیت شد.');
    } else {
        $ajax_handler->add_error_message("تصویر آپلود نشد.");
        $ajax_handler->is_success = false;
    }
}


//تغییر پروفایل کاربر
add_filter( 'get_avatar_url', 'nias_get_avatar_url', 10, 3 );
function nias_get_avatar_url( $url, $id_or_email, $args ) {
    $id = '';
    // بررسی نوع ورودی
    if ( is_numeric( $id_or_email ) ) {
        $id = (int) $id_or_email; // اگر شناسه باشد
    } elseif ( is_object( $id_or_email ) ) {
        if ( ! empty( $id_or_email->user_id ) ) {
            $id = (int) $id_or_email->user_id; // اگر شیء باشد و شناسه کاربر داشته باشد
        }
    } else {
        // دریافت شناسه کاربر از ایمیل
        $user = get_user_by( 'email', $id_or_email );
        $id = ! empty( $user ) ? $user->data->ID : '';
    }

    // دریافت URL تصویر پروفایل سفارشی از متای 'nias_profile_user'
    $custom_url = $id ? get_user_meta( $id, 'nias_profile_user', true ) : '';

    // اگر تصویر سفارشی وجود نداشته باشد یا 'force_default' تنظیم شده باشد، از تصویر پیش‌فرض استفاده می‌کنیم
    if ( empty( $custom_url ) || ! empty( $args['force_default'] ) ) {
        return esc_url_raw( 'https://niasel.ir/wp-content/uploads/2024/09/2e8c797833384e1920a49c01a27c165d.jpg' );
    } else {
        return esc_url_raw( $custom_url );
    }
}
